A number of systems and programs are offered on the market for the design of parts or assemblies of parts, such as the one provided by the applicant under the trademark CATIA. These so-called computer-aided design (CAD) systems allow a user to construct and manipulate complex three-dimensional (3D) models of parts or assembly of parts. A number of different modelling techniques can be used to create a model of an assembly. These techniques include solid modelling, wire-frame modelling, and surface modelling. Solid modelling techniques provide for topological 3D models, where the 3D model is a collection of interconnected edges and faces, for example. Geometrically, a 3D solid model is a collection of trimmed or relimited surfaces that defines a closed skin. The trimmed surfaces correspond to the topological faces bounded by the edges. The closed skin defines a bounded region of 3D space filled with the part's material. Wire-frame modelling techniques, on the other hand, can be used to represent a model as a collection of simple 3D lines, whereas surface modelling can be used to represent a model as a collection of exterior surfaces. CAD systems may combine these, and other, modelling techniques, such as parametric modelling techniques. CAD systems thus provide a representation of modelled objects using edges or lines, in certain cases with faces. The modelled objects comprise a number of lines or edges; these may be represented in various manners, e.g. non-uniform rational B-splines (nurbs), Bezier curves or other algorithms describing a curve. In the rest of this description, the word “curve” is use to describe mathematical curves, that is curves defined by parameters and possibly by a limited number of control points. The word “polylines” is used to describe a spatially ordered set of points in a design system; a polyline comprises all the points in the line or edge. For instance, consider the example of a segment extending from a point A to a point B: the curve is defined by points A and B and the fact that the curve is the part of the straight line passing through points A and B which is limited by these point. On the other hand, the polyline corresponding to the segment is comprised of points A and B and of all points of the segment from A to B. The polyline is ordered, in that the points are ordered from A to B or from B to A.
One feature of design systems is the ability for the user to create or modify curves, using haptic devices such as mouse, trackpads, graphics tablets or the like. Another feature is the ability for the user to connect adjacent curves. Notably, for curves in design systems and notably at points of connection between curves, there may exist constraints on position of the curve, derivatives or tangents, second derivatives or curvatures, or higher degree derivates.
Existing systems require from the user a high level of experience for drafting or modifying curves. For instance, in a prior art system such as AliasStudioTools™ from Alias®, ICEM Surf from ICEM or CATIA® from Dassault Systemes, a curve is defined based on a number of control points, selected by the user. The user may also associate constraints to the control points—such as a value of position, tangent, or curvature at the control point. Creating the curve requires that the user selects the various control points, and, if necessary, the associated constraints. Selecting control points requires a high level of experience from the user, since the resulting curve depends closely on the selection of the points; the dependence of the resulting curves on the control points also varies from one design system to the other. Furthermore, control points may not be located on the curve itself, making it extremely difficult to tune local modifications with the desired precision.
In addition, a curve may be segmented, that is formed of various curves connected at segmenting points. Segmenting a global curve also requires a high level of skill from the user, since a proper selection of segmenting points impacts the resulting global curve, especially if this global curve is later modified. In the rest of this description, for the sake of better understanding, the word “arc” will be used to a segment of a curve; in other words, a segmented curve is formed of several arcs. It should however be clear that such an “arc” is still is nonetheless a curve, the word “arc” being simply used for the sake of avoiding any confusion between a segmented curve and the various curves—or arcs—forming the segmented curve. The segmentation of a curve enables for example the description of local details. In existing design systems, the user may not be aware of the existence of segmenting points in a curve; for instance, in the case of a nurbs, the curve may be formed of various arcs, extending between segmenting points, each arc being represented by a Bezier curve. The user only sees the end points of the curve, but not the intermediate segmenting points.
For modifying an existing curve, the user acts on the control points or their associated constraints. For changing an existing curve, the user may however have to modify several of the control points or all control points, for achieving the required result. Any time the user changes a control point or an associated constraint, the design system computes again the curve.
These problems are exemplified in FIG. 1, in the case of an image created in Microsoft® Word. In this simple example, the control points are not associated with any value. The figure shows an ellipsis 2, which is defined by nine control points; this ellipsis is an example of a curve—which happens to be a closed curve. Control points 4, 6, 8 and 10 are located at the respective corners of a rectangle containing the ellipsis and the sides of which are respectively parallel to the major and minor axes of the ellipsis. Control points 4, 6, 8 and 10 may be used for sizing up and down the ellipsis, in a proportional transformation centred on the opposed control point. Control points 12, 14, 16 and 18 are located at the middles of the sides of the rectangle and are used for lengthening or shortening the ellipsis, in directions parallel to the sides of the rectangle. Last control point 20 is used for rotating the ellipsis, around a centre of rotation located substantially in the middle of the ellipsis. FIG. 1 further shows an amended ellipsis 22, the control points of the amended ellipsis being omitted for the sake of clarity. Changing ellipsis 2 into ellipsis 22 requires acting on at least three control points, for lengthening ellipsis 2, increasing the size of the lengthened ellipsis and then rotating the increased ellipsis. Selecting the control points for achieving a given result, even in this simple example, requires a full understanding of the operation of the control points.
The company ALIAS® offers, for example under the trademark MAYA 5 a design system, in which the user may draft a curve, using a graphics tablet. A curve is created for each stroke of the tablet's pencil, with associated control points. For modifying an existing curve, the user acts on the control points of the curve.
EP-A-1 274 045 discloses a method and system for real-time analysis and display of curve connection quality. The problem addressed in this application is the quality of curves. This application discusses the use of a “comb” representation of the second derivative of the curve, with respect to a curvilinear abscissa, which is also called curvature envelope. The curvature envelop is representative of the shape of a curve. In an orthogonal set of coordinates (x, y), the second derivative is a vector, the coordinates of which are
                              ∂          2                ⁢        x                    ∂                  s          2                      ⁢                  ⁢    and                      ∂        2            ⁢      y              ∂              s        2            where s is the curvilinear abscissa. The curvature C designates the norm of this vector. Of course, the definition generally applies to other types of coordinates, as well known to the person skilled in the art.
FIG. 2 shows an example of such a comb, for the second derivative of a curve 30—in other words the curvature of the curve 30. The value of the second derivative (equalling the acceleration) is computed along the curve; along the curve, one also computes the tangent vector and the normal vector. The normal vector is the vector product of tangent vector and of the acceleration vector:{right arrow over (n)}={right arrow over (t)}^{right arrow over (a)}
Then, the vector product of the normal vector and the tangent vector is computed, giving the vector 32, having a length of 1 and which is orthogonal to the curve 30:{right arrow over (u)}={right arrow over (n)}^{right arrow over (t)}
The “comb” 36 is represented on FIG. 2 as a number of vectors issued from points along the curve. FIG. 2 shows for point A the vector {right arrow over (u)} 32 and the computed vector 34 which length is representative of the curvature at point A. In the simplest case (scale 1), vector 34 is the product of curvature C by the vector {right arrow over (u)}.
The curve 36—also called envelope—joining the end of the computed vectors 34 for all points of curve 30 is representative of the second derivative and provides the user with a graphical representation of the second derivative. For instance, envelope 36 intersects curve 30 at points where the value of the second derivative is zero and such intersections are representative of changes of curvature (sign of the second derivative) of curve 30. The example of FIG. 2 displays the second derivative, but a “comb” representation may also be used for higher degree derivatives; in application EP-A-1 274 045, the “comb” representation is used for assessing curve connection quality.
There exists a need for a solution allowing a user of a design system to draft and modify curves, without requiring high level of skills from the user. Ideally, the solution would be user-friendly and would also be easy to understand and implement for the user.